package com.river.boot.biz.model.form;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 店铺管理表单对象
 *
 * @author JiangCheng Xiang
 * @since 2025-04-24 11:56
 */
@Getter
@Setter
@Schema(description = "店铺管理表单对象")
public class ShopForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "店铺ID")
    private Long id;

    @Schema(description = "关联商家用户ID")
    @NotNull(message = "关联商家用户ID不能为空")
    private Long userId;

    @Schema(description = "店铺名称")
    @NotBlank(message = "店铺名称不能为空")
    @Size(max = 100, message = "店铺名称长度不能超过100个字符")
    private String name;

    @Schema(description = "店铺LOGO")
    @Size(max = 255, message = "店铺LOGO长度不能超过255个字符")
    private String logo;

    @Schema(description = "店铺描述")
    @Size(max = 65535, message = "店铺描述长度不能超过65535个字符")
    private String description;

    @Schema(description = "店铺详细地址")
    @Size(max = 255, message = "店铺详细地址长度不能超过255个字符")
    private String address;

    @Schema(description = "经度")
    private BigDecimal longitude;

    @Schema(description = "纬度")
    private BigDecimal latitude;

    @Schema(description = "手机号")
    @Size(max = 20, message = "手机号长度不能超过20个字符")
    private String phone;

    @Schema(description = "营业时间，如09:00-21:00")
    @Size(max = 100, message = "营业时间，如09:00-21:00 长度不能超过100个字符")
    private String businessHours;

    @Schema(description = "营业状态 1-营业中 2-休息中 3-已打烊")
    private Integer status;

    @Schema(description = "配送费")
    private BigDecimal deliveryFee;

    @Schema(description = "起送金额")
    private BigDecimal minOrderAmount;

}
